package base.thread_JUC2.chapter03.demo07;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Exchanger;

/**
 * 小众API，没研究好，有需要再研究
 * 并发任务间的数据交换
 * Exchanger 是一个同步辅助类，只能解决一个生产者一个消费者之间的数据同步交换（Exchanger只能同步两个线程,因此只能用于有一个生产者，有一个消费者场景）
 */
public class TestCase {
    public static void main(String[] args) {
        List<String> buffer1=new ArrayList<>();
        List<String> buffer2=new ArrayList<>();

        Exchanger<List<String>> exchanger=new Exchanger<>();

        Producer producer=new Producer(buffer1, exchanger);
        Consumer consumer=new Consumer(buffer2, exchanger);

        Thread t1=new Thread(producer);
        Thread t2=new Thread(consumer);

        t1.start();
        t2.start();
    }
}
